package Demo1;

    public class Main {
        public static void main(String[] args) {
            Generic<String> strGeneric = new Generic<>("abc");
            String key1 = strGeneric.getKey();
            System.out.println(key1);

            System.out.println("--------------------------");

            Generic<Integer> intGeneric = new Generic<>(100);
            int key2 = intGeneric.getKey();
            System.out.println(key2);

            System.out.println("--------------------------");

//        泛型类在没有指定具体的数据类型，操作类型是Object
            Generic Generic = new Generic<>(true);
            Object key3 = Generic.getKey();
            System.out.println(key3);
//        泛型的类型参数，只能是类类型
//        泛型类，不支持基本数据类型

            System.out.println("--------------------------");
            System.out.println(strGeneric.getClass());
            System.out.println(intGeneric.getClass());
//        比较二者地址
            System.out.println(strGeneric.getClass() == intGeneric.getClass());
//        同一泛型类根据不同数据类型创建的对象，本质上是同一类型
        }
    }

